package day9;
/*
* static的使用
*
* */
public class Demo3 {


    public static void main(String[] args) {
        DemoTest demo3 = new DemoTest();

        DemoTest demo31 = new DemoTest();

        demo3.num = 200;

        System.out.println(demo3.num);

        System.out.println(demo31.num);

        //静态成员不属于任何对象，可以使用当前类直接调用
        System.out.println(DemoTest.num);

        demo3.show();

        DemoTest.show();
    }
}
class DemoTest{
    /*
    * 静态成员优先于对象存在
    * */
    //静态变量，不属于任何一个对象,属于当前类,可以被类直接调用
    public static int num = 100;

    //静态方法 不属于任何一个对象,属于当前类,可以被类直接调用
    public static void show(){
        //静态方法中不能使用this,super;优于对象存在
        System.out.println("静态方法");

        //因为普通方法依靠对象调用，在静态方法执行时，有可能对象还没有生成
        //静态方法可以调用静态方法
//        show2();
    }


    //普通方法,可以调用静态方法
    public void show2(){
        show();

    }
}

class SubDemo extends DemoTest{
    //当前静态方法不能被重写，但是子类中可以有和父类中同名的静态方法
    public static void show(){

    }
}
